专利摘要:
A method includes: encoding, by a video encoder (102) and based on a first quantization factor (QP), one or more first groups of image blocks of a video frame; estimating, by a processing device, the size of an image slice comprising a plurality of other groups of image blocks to be encoded; and determining, based on the estimated size of the slice of image, a second quantization factor (QP) to be applied to one or more of the other groups.
公开号:FR3024314A1
申请号:FR1457231
申请日:2014-07-25
公开日:2016-01-29
发明作者:Pascal Eymery;Christophe Chong-Pan
申请人:ALLEGRO DVT;
IPC主号:
专利说明:

[0001] The present description relates to the field of video coding, and in particular a low latency video coder and a video coding method.
[0002] BACKGROUND OF THE PRIOR ART In some applications, low-latency video transmission between a video source and a video display is required. For example, it may be desirable for frames of video captured by a camera to be displayed almost instantaneously on a display disposed several meters or more from a camera. Such an arrangement could correspond to a visual assistance for the driver of a vehicle to allow him to see hidden parts, as an example when the vehicle is backed up. Although some can be used to achieve relatively low transmission times on a wired interface, such as a serial interface, there are difficulties in reducing latency in video transmission, in other words the time required to encoding, transmitting and decoding the video, while maintaining acceptable video quality. There is therefore a need in the art for a video signal coding device and method which provides reduced latency for video transmission and decoding operations. SUMMARY An object of embodiments of the present invention is to at least partially meet one or more needs of the prior art. In one aspect, there is provided a method comprising: encoding, by a video encoder and based on a first quantization factor, one or more first groups of picture blocks of a video frame; estimating, by a processing device, the size of an image slice comprising a plurality of other groups of image blocks to be encoded; and determining, based on the estimated size of the slice of image, a second quantization factor to be applied to one or more of the other groups. According to one embodiment, the estimation of the size of the image slice comprises estimating the size of each of the other groups of image blocks. According to one embodiment, the size of each of the other groups of picture blocks is estimated based on the size of the first group of picture blocks.
[0003] According to one embodiment, the size of each of the other groups of image blocks is estimated: by identifying, for each other group of image blocks, a corresponding group of image blocks in a previous video frame; and estimating the size of each other group of picture blocks based on the size of its corresponding group of picture blocks in the previous frame and the quantization factor that was used to code the corresponding group of picture blocks. 'picture. According to one embodiment, the estimate of the size of each of the other groups of picture blocks is based on the equation 3024314 B13071EN 3, Old_Group_QP (g) -NewQP) Predicted_Group_Size [g] = Old_Group_Size [g] x 2 6 where Predicted Group_Size [g] is the size estimate of the other group g, Old Group_Size [g] is the size of the corresponding group of picture blocks in the previous frame, OldGroup_QP [g] is the 5 factor of quantization that was used to encode the corresponding group of image blocks, and NewQP is the first quantization factor. According to one embodiment, for each other group of picture blocks, the corresponding group of picture blocks is the group of the previous frame having the same position in the picture as the other group. According to one embodiment, for each other group of picture blocks, the corresponding group of picture blocks in the previous frame is identified on the basis of one or more motion vectors between picture blocks of the picture frame. previous video frame and image blocks of the video frame. According to one embodiment, said one or more first picture blocks are stored in a buffer, and the method further comprises predicting the occurrence of a buffer overflow based on the predicted size of the other groups. of image blocks in a sliding window to code. According to one embodiment, the determination of the second quantization factor comprises a comparison of the estimated size of the image slice with an image slice size limit, and a reduction or increase of the first quantization factor on the slice. the basis of the comparison. According to one embodiment, the method further comprises: detecting by the processing device whether or not a scene change has occurred between the video frame and a previous video frame by comparing the size of the first group of blocks. an image at least one threshold determined on the basis of the size of a group of picture blocks in a previous frame corresponding to the first group; if no scene changes are detected, estimating the size of each other group of picture blocks based on the size of a corresponding group of picture blocks in the previous video frame; and if a scene change is detected, estimating the size of each other group of picture blocks based on the size of one or more coded groups of picture blocks of the current video frame. According to one embodiment, each group of image blocks comprises one or more blocks of images. According to one embodiment, each frame of video comprises N groups of picture blocks, and the frame of video comprises N groups of picture blocks. In another aspect, there is provided a processing device adapted to: estimate, on the basis of a first quantization factor used to code one or more first groups of image blocks of a video frame, the size of an image slice comprising a plurality of other groups of image blocks to be encoded; and determining, based on the estimated size of the slice of image, a second quantization factor to be applied to one or more of the other groups. In another aspect, there is provided a video transmission circuit comprising: a video encoder adapted to compress a video signal based on a quantization parameter; the aforementioned processing device for providing the quantization parameter; and an output buffer for storing the compressed video signal.
[0004] In another aspect, there is provided a video transmission system comprising: the aforesaid video transmission circuit, wherein the video signal is provided by a capture device; a receiver circuit coupled to the video transmission circuit by a transmission interface, the receiver circuit comprising: an input buffer for receiving the compressed video signal; a decoder for decoding the compressed video signal to generate an uncompressed video signal; and a display for displaying the uncompressed video signal.
[0005] BRIEF DESCRIPTION OF THE DRAWINGS The above-mentioned and other features and advantages will be apparent from the following detailed description of embodiments, given by way of illustration and not limitation, with reference to the accompanying drawings in FIG. which: schematically illustrates a video transmission system according to an exemplary embodiment; Fig. 2A is a timing chart showing an example of video frame compression and transmission of a video sequence without low latency control; Fig. 2B is a timing chart showing an example of low latency compression and transmission of video frames of a video sequence according to an exemplary embodiment; Figure 3 schematically illustrates in more detail an example of transmission circuit size images of the system of Figure 1 according to one embodiment; Figure 4 is a diagram showing a frame according to an example embodiment; Fig. 5 is a timing chart illustrating predicted image block groups and predicted sizes of slices during consecutive frames according to an exemplary embodiment; Fig. 6 is a flowchart showing operations in a video coding method according to an exemplary embodiment; Fig. 7A is a diagram showing a sequence of consecutive frame image block groups according to an example embodiment; Fig. 7B is a timing chart illustrating predicted sizes of image block groups and output buffer levels during consecutive frames according to an exemplary embodiment; and FIG. 8 is a flowchart showing operations in a scene change detection method according to an exemplary embodiment. DETAILED DESCRIPTION Although in the following description the particular encoding standard used to compress the video data has not been described in detail, it will be apparent to those skilled in the art that the embodiments described herein could be applied to a wide range of video compression standards, such as the ISO H.264 MPEG4 AVC standard, the MPEG-2 video standard, the VP8 and VP9 standards, or the MPEG HEVC (High Efficiency Video Coding) standard . Figure 1 schematically illustrates a video transmission system according to an exemplary embodiment.
[0006] On one transmitting side, the system comprises an encoder (ENCODER) 102 which receives frames of an uncompressed video signal (VIDEO), and encodes the frames on the basis of a quantization parameter QP. As is known to those skilled in the art, the quantization parameter determines the compression ratio used by the encoder to encode at least some of the video data, and thus influences the number of data bits encoded for a number given data bits as input. The lower the QP, the greater the number of bits of each compressed frame, and therefore the video signal that will be recovered after the decoding will generally be of a higher quality. On the contrary, increasing QP will cause a decrease in the number of bits, and will often lead to a decrease in the quality of the video. For example, according to ISO H.264, the quantization parameter is a value between 0 and 51 which determines the size of the quantization step. The relationship between QP and the compression ratio is logarithmic. In many cases, a general rule can be considered that, when QP decreases by 6, the number of coded data bits doubles.
[0007] Other coding standards may use other types of quantization parameters to determine, at least to some extent, the compression ratio that is applied during the encoding of the video signal.
[0008] Referring again to FIG. 1, the video signal to be encoded by the encoder 102 is received from a capture device (CAPTURE DEVICE) 104, for example a camera, on the transmit side. Alternatively, the video data could be stored in a memory (not shown in Fig. 1) on the transmit side and retrieved from the memory by the encoder 102. The encoder 102, for example, provides a video output stream. compressed to an output buffer (0 / P BUFFER) 106 on the transmit side, which stores the compressed video data packets until they can be transmitted on a transmission interface 107. The interface transmission 107 is for example a wired interface, such as a serial interface. Alternatively, in some embodiments, the transmission interface 107 could be a wireless interface. The length of the transmission interface 107, in other words the distance between the transmitter and receiver sides of the system, could be in a few tens of centimeters, for example 50 cm, and tens of meters, or more, depending on the application. In some cases, the transmission interface 107 could include one or more intermediate networks, including the Internet. In addition, the video data stored in the output buffer 106 could be in the form of a file, which could be stored in a memory card before being transmitted.
[0009] The transmission of the compressed video data is, for example, carried out at a constant bit rate, determined by the capabilities of the transmission interface 107. On the reception side, the compressed video data is for example received by a buffer. input (I / P 35 BUFFER) 108. The compressed video data is then read into the input buffer 108 by a decoder (DECODER) 110, which decodes the video stream to provide an uncompressed video signal VIDEO. ', which will usually be a slightly degraded version of the original VIDEO signal. In some embodiments, the decoded video is displayed on a display (DISPLAY) 112 on the receiving side. Fig. 2A is a timing diagram illustrating the time course of encoding, transmitting and decoding video frames of a video sequence according to an example in which no low latency rate control is implemented. . The upper part 202 of the time diagram illustrates an example of the sequence of frames of video to be encoded and stored in the output buffer 106 of Fig. 1. The frames are noted from left to right Io, P1 to P6, 17 and P8, the frames denoted I being hatched and corresponding for example to intra coded frames which can be decoded without using information from other frames, whereas the frames marked P correspond to inter prediction frames for which the decoding relies heavily on one or more previous frames. Each frame is represented by a rectangle having a height that represents its size, in other words, its number of bits. Intra Io and 17 frames are for example the largest frames. The widths of the rectangles 25 represent the capture and coding time. This duration is the same for all the rectangles, since the frames arrive for example at the level of the encoder 102 from the capture device 104 at a constant frame rate. The lower part 204 of the time diagram of FIG. 2A illustrates an example of the transmission time of each frame, the frames being transmitted at a constant rate. Thus, the largest frame takes the most time to be transmitted. The decoding of the first frame I 0 begins with a delay t t after the first part of the first frame has become available in the input buffer 108, due for example to the delay introduced by the physical transmission interface. 107, which is for example of the order of a few milliseconds. However, the overall latency tL of the first frame is, for example, determined by the delay between the instant when it is completely available in the output buffer 106 and the moment when it has been completely read and decoded from the buffer. 108, this delay being noted tL in Figure 2A. As illustrated, due to the size of the Io frame, this overall latency is significantly greater than the latency due to the physical transmission delay, and could reach 100 ms in some cases. FIG. 2B is a timing diagram illustrating the timing of the transmission and decoding of video frames of a video sequence according to an example in which a rate control is implemented as will be described hereinafter. The upper portion 206 of the timing diagram is substantially the same as the upper portion 202 of Figure 2A, except that the size of at least some of the frames has been limited. For example, the intra Io and 17 frames and the predicted P1 and P8 frames have their size limited to be significantly closer to the average frame size. As will be explained in more detail below, the limitation of the frame size in this way is obtained for example by adapting the quantization parameter QP used during the coding operation.
[0010] The lower part 208 of the time diagram shows the result of the frame size limitation, which is that the time to transmit each frame to the input buffer 108 on the receiver side becomes relatively constant, and is substantially equal to the time It was necessary to encode and load the frames into the output buffer 106 on the transmitter side. The overall latency tL is thus not much greater than the delay tT representing the physical transmission delays. Figure 3 schematically illustrates in more detail the transmitter side of the video transmission system of Figure 1 according to an exemplary embodiment. As illustrated, the encoder 102 for example processes the video frames in groups of picture blocks. As used herein, the term "image block" designates a block of pixels, for example corresponding to a macroblock according to the H.264 standard, or to a coding unit according to the HEVC standard.
[0011] Each group comprises a plurality of image blocks, and for example at least five image blocks. In addition, each group of image blocks has a maximum size equal to that of a row of the image. A RATE CONTROL block 302 is provided, for example, implemented by a hardware circuit such as an ASIC (application specific integrated circuit) or an FPGA (field programmable integrated circuit). Alternatively, the functions of the rate control block 302 could be implemented at least partially by software, in other words by a processing device under the control of instructions stored in an instruction memory. The rate control block 302 determines, based on the size of one or more coded groups of picture blocks and an estimate of the size of one or more future groups to be encoded, the quantization parameter. (QP) to apply to a subsequent group to prevent a frame size limit from being exceeded. For example, the frame size limit is defined as being equal to the bit rate at which data can be processed on the receiver side, divided by the frame rate. For example, for a bit rate of 10 Mbps, and a frame rate of 20 frames per second, the frame size limit is, for example, 500 kbits. According to the embodiments described herein, the size estimate is made for an image slice, which comprises, for example, at least one of a plurality of image blocks, and at most the same number of image groups. picture blocks than a frame. For example, there is an integer number of image block groups in each line of the image. Thus, a size limit for the image slice can be determined on the basis of the frame size limit. For example, the size limit is determined based on the following equation: Bit_rate Image_slice_size Size Limit = Frame_rate Frame_size where Frame size is for example the number of picture blocks in each frame, and Image_slice_size is the number of blocks image in each slice. If the image slice size limit is exceeded, the quantization parameter is for example increased. If the image slice size limit is not exceeded, the quantization parameter is for example kept constant or reduced. In the example of Figure 3, the new quantization parameter is applied to a group of rank n (GROUP N), based on the size of the group (n-2) (GROUP N-2). Indeed, once the (n-2) group becomes available, the rate control block 302 determines the new QP while the (n-1) group is being coded, and applies it to the n . However, in alternative embodiments, the new QP may be available sooner, in which case it could be determined on the basis of the (n-1) group and applied to the n group. Figure 4 illustrates an example of a video frame 400 consisting of 60 image blocks, represented by squares, arranged in six rows and ten columns. In the example of FIG. 4, the frame is divided into 12 groups of picture blocks g1 to g12, each having the size of five consecutive picture blocks. In the example of FIG. 4, a first set of three groups gl, g2 and g3 of the frame has already been coded, and the other groups g4 to g12 remain to be coded. The QP to be applied to the group g5 is for example determined on the basis of an estimation of the size of an image slice, which corresponds for example to a video frame in the example of FIG. for example, an image slice is estimated on the basis of the sizes of the groups that have already been encoded, for example the groups g1 to g3 in FIG. 4, and an estimation of the size of each of the groups . remaining in the slice, for example groups g4 to g12 in FIG. 4. For example, the estimated size (Predicted_Size) of the slice is determined on the basis of the following equation 5 (Equation 1): Current_Size Predicted_Size = () x NG NGE where Current Size is the size of one or more groups of already encoded image blocks, NGE is the number of groups already encoded and NG is the total number of groups in the slice.
[0012] In an alternative embodiment, the size of the slice is estimated on the basis of the following equation (Equation 2): Predicted_Size = Current_Size + Last_Group_Size x NGR where Last Group Size is the size of the last group to be encoded, and 15 NGR is the number of groups remaining, for example defined by NGR-NG-NGE- In other words, the estimate is based on the last group to be coded, which is supposed to best reflect the size of the following groups of the picture. According to yet another embodiment, there are two or more groups of image blocks per row of the image, which means that the image comprises two or more group columns and the size of the slice is estimated on the basis of the following equation (Equation 3): Predicted_Size = Current_Size + IILast_Group_Size [c] i = o 25 where C is the number of group columns, in other words, the number of groups in each row, NC is the number of groups remaining to be coded in column c, and Last Group Size in column c is the size of the last group in column c that has been encoded. In yet another embodiment described in more detail below, the size of the slice is estimated by estimating the size of the groups to be encoded based on corresponding groups in a previous frame. For example, the slice size is estimated on the basis of the following equation (Equation 4): Predicted_Size = Current_Size + Predicted_Group_Size [g] g = n + 1 where N is the total number of groups in the slice to be coded, n is the index of the current group and Predicted Group_Size for each group g is for example determined on the basis of the equation (Equation 5):, Old_Group_QP (g) -NewQP) Predicted_Group_Size [g] = Old_Group_Size [g] x 2 6 where Old Group Size [g] is the size of a group corresponding to group g in the previous frame, Old Group_QP is the QP that was used to code the corresponding group, and NewQP is a current QP, for example the QP used to encode the last group of picture blocks. The ratio 1/6 in this equation assumes that as the QP decreases by 6 units, the number of bits of the encoded data doubles. If another relationship applies, a different report may be used. The corresponding group is for example identified as being located at the same position in the previous frame as the group g in the current frame. Alternatively, the corresponding group 20 is identified on the basis of one or more motion vectors between group g image blocks and image blocks of the previous frame. In other words, the corresponding group can be identified as one which, after the application of one or more motion vectors, is located at the location of the group g in the current frame. Each slice of image corresponds for example to a frame of the video signal. Alternatively, the image slice could be smaller in size. FIG. 5 is a timing diagram showing, in an upper portion of the diagram, curves 501, 502, and 503 respectively representing frame block group sizes over three consecutive frames Fi, Fi + 1, and Fi + 2. In this example, the frames are those of a similar scene without scene change. Thus, curves 501, 502, and 503 have relatively similar shapes to each other. The dotted line curves 501 ', 502' and 503 'illustrate predicted group sizes for the three fields respectively. The lower portion of the time diagram of FIG. 5 illustrates, for each frame, curves 504, 505 and 506 respectively representing the cumulative group sizes in the frames Fi, Fi + 1 and Fi + 2, equal to the sum of the sizes of the 10 previous groups of image blocks in the frame that have already been encoded. The dotted line curves 504 'and 505' illustrate the cumulative size on the basis of the predicted group sizes for the Fi and Fi + 1 frames. It is assumed that at a current time represented by a dotted arrow 508 at mid path of the frame Fi, the predicted sizes of the group of image blocks represented by the dashed line 501 'will cause a target slice size, represented by a line 510 in FIG. 5, to be exceeded, as shown by the dotted line 504 '. Therefore, for example, the quantization parameter QP is increased to reduce the remaining size of the image block groups and to reduce the slice size in the target slice size. During the next Fill frame, the slice size based on the new QP is then predicted to be smaller than the target slice size, as shown by the cumulative curve 505 'in dashed line. Thus, the QP is reduced to bring the wafer size closer to the target level as shown by curve 505. FIG. 6 is a flowchart illustrating operations in a bit rate matching method of an encoder of video. It is assumed that the encoder receives uncompressed frames of a voided signal, and that one or more groups of picture blocks of a first frame are encoded based on a default quantization parameter, which is selected example relatively weak.
[0013] In a first operation 601 of FIG. 6, the sizes of one or more groups of image blocks of the image slice to be encoded are estimated, for example, on the basis of an average of previously coded groups (previous equation 1 5), based on the size of the last coded group (previous equation 2 or 3), or on the basis of corresponding groups of a previous frame (equation 4 and 5 above). In a subsequent operation 602, the size of the image slice is estimated on the basis of the estimate of the image block groups to be encoded, and for example on the basis of the size of each group of the image slice. image that has already been coded. In a next operation 603, the estimated size of the image slice is compared to a size limit. As previously indicated, the size limit is, for example, determined on the basis of the rate at which the data is processed on the receiver side, and on the basis of the frame rate. If in operation 603 it is found that the size limit is exceeded, QP is increased in an operation 605. For example, QP is incremented by a single unit, or increased by a quantity depending on the amount with which the size limit has been exceeded. Alternatively, if in operation 603 it is found that the size limit is not exceeded, QP is maintained at its current level, or is reduced. For example, if the slice size is less than a certain percentage of the limit, the current QP is maintained, whereas if the slice size is smaller, for example, QP is decremented by one or more units in use. the amount that separates the size of the boundary. In some embodiments, the method used in operation 601 for estimating the size of one or more image groups may be based on the detection of a scene change between the previous frame and the current frame. Indeed, while the method of Equation 4 above is particularly well suited when consecutive frames of the video signal are relatively similar to each other, in the case of a scene change, it will be preferable to adapt a other method. In addition to the wafer size adaptation as previously described, in some embodiments buffer overflow protection may be implemented, as will now be described with reference to Figs. 7A and 7B. Fig. 7A is a diagram showing an exemplary embodiment in which a sliding window 700 of picture blocks is used to predict whether a buffer overflow will occur.
[0014] As illustrated, a current frame Fi comprises groups g1 'to g12' of picture blocks, and a subsequent frame Fi + 1 comprises groups g1 to g12. It will be assumed that the last group g12 'of the current frame Fi has just been coded, and that the sliding window corresponds to the group g12' and the groups 20 g1 to g11 of the following frame. The occurrence of a buffer overflow is, for example, predicted by predicting the buffer level after each group of image blocks of the sliding window has been processed. For example, the prediction for a group of rank n of image blocks of the sliding window 700 is based on the following 25 equations (Equations 6): Predicted_Buf fer_Level [0] = Current_Buf fer_Level Predicted_Buf fer_Level [n] = Max (0 Predicted_Buf fer_Level [n - 1] SizeLimit + Predicted_Group_gize [g + n - 1] _ _ / Aftunber_o f _gr oup 30 where Current Buffer Level is the number of bits currently stored in the output buffer, Predicted_Group_Size [en] is the size predicted group determined by the aforementioned equation, assuming that the group g is the first group of the sliding window, and Size_Limit / Number of_group is the number of 35 bits removed from the buffer when the group n is processed. In the example of FIG. 7A, the group g11 has just been coded, this estimation makes it possible, for example, to find an updated QP to be used for the next group g12 'of the image Fi. next group of b Once the group g12 'of the frame Fi has been coded, the sliding window shifts a group forward as shown by the window denoted 700. to include the groups g1 to g12 of the frame Fi4.1. The sizes of the groups g1 to g12 of the sliding window 700 'are, for example, estimated on the basis of the sizes of the previously coded groups g1' to g12 ', respectively, according to the aforementioned equation. FIG. 7B is a timing chart showing, in an upper portion of the diagram, curves 701, 702, and 703 respectively representing image block group sizes over three consecutive frames Fi, Fi + 1 and Fi + 2. FIG. 7B also illustrates in an inferior portion an example of the output buffer levels in the output buffer 106 on the three consecutive frames Fi, Fi + 1 and Fi4.2. As in the example of FIG. 5, the frames in FIG. 7B are of a similar scene with no scene change. Thus, the curves 701, 702 and 703, which respectively represent the sizes of the groups of image blocks in the frames Fi, Fi + 1 and Fi + 2, have relatively similar shapes. As a result, the level of the output buffer 106, represented by a curve 704 in FIG. 7B, reaches peaks shortly after the presence of large group sizes in the respective frames. Figure 7B also illustrates an example of a sliding window 705, and an estimated buffer size represented by a dashed line 706. In particular, as represented by an arrow 708, the size of the buffer is estimated as having a peak at a level that exceeds the size limit of the output buffer. There is therefore a risk of buffer overflow in the output buffer 106, and for example a loss of data. The sliding window thus makes it possible to take into account such peaks to prevent buffer overflows. In particular, QP is increased at an advanced stage to reduce the sizes of image block groups, and thus prevent buffer overflow as represented by curve 704 in Fig. 7B, which has a peak at one time. below the size limit 710. In addition, using a sliding window makes it possible to adjust QP well in advance of any possibility of buffer overflow, which avoids strong fluctuations in QP. FIG. flow chart illustrating an example of operations for detecting a scene change according to an exemplary embodiment. In a first operation 801, high and low thresholds are determined for the size of a current group of picture blocks based on the size of a corresponding group in a previous frame. For example, the corresponding group is the one that has the same position in the previous frame as the current group in the current frame. For example, the high and low thresholds are determined as a percentage of the size of the corresponding group, for example Old Size * (1 + X) and Old_Size * (1- X), where X is the fraction representing the percentage. The percentage is, for example, between 20 and 100%, and is for example about 50%, ie X is between 0.2 and 1, for example about 0.5. In a subsequent operation 802, the size of the current group is compared with the high and low thresholds.
[0015] If none of the thresholds is exceeded, the next operation is the operation 803, in which a counter is for example decremented, if it has a count value greater than zero. The process then returns to operation 801 where a next group is processed.
[0016] Alternatively, if in operation 802, the high threshold or the low threshold is exceeded, in other words, if the current group size is lower than the low threshold or higher than the high threshold, the next operation is operation 804, in which the counter is incremented. In a subsequent operation 805, the count value maintained by the counter is then compared to a limit, and if the limit is not reached, the process returns to the operation 801 where a next group is processed. Otherwise, if the limit is reached, it is determined in an operation 806 that a scene change has taken place. The counter limit is, for example, set to a value between 2 and 10, depending on aspects such as the size of the image block groups. The method of FIG. 8 is for example carried out for each group of image blocks to be processed. An advantage of the embodiments described herein is that by updating the QP value to be used for a group of picture blocks based on an estimate of the size of one or more groups that remain to be encoded. , the value of QP can be adapted during a frame and the latency can be maintained at a very low level. For example, by controlling the quantization parameter so as to limit the frame size as described herein, the overall latency can be significantly reduced, for example to less than 30 msec, and generally less than 20 msec. In addition, a QP which is particularly well adapted to the frame can be determined by basing the size estimate on the size of one or more previously encoded groups in a previous frame. With the description thus made of at least one illustrative embodiment, various alterations, modifications and improvements will readily occur to those skilled in the art. For example, it will be clear to one skilled in the art that the changes applied to QP when determining that a size limit has been exceeded for the slice of image will depend on the particular application and the nature of QP in accordance with the relevant coding standard. In addition, it will be clear to those skilled in the art that the various elements described in connection with the various embodiments could be combined, in alternative embodiments, in any combination.
权利要求:
Claims (15)
[0001]
REVENDICATIONS1. A method comprising: encoding, by a video encoder (102) and based on a first quantization factor (QP), one or more first groups of picture blocks of a video frame; estimating, by a processing device (302), the size of an image slice comprising a plurality of other groups of image blocks to be encoded; and determining, based on the estimated size of the slice of image, a second quantization factor (QP) to be applied to one or more of the other groups.
[0002]
The method of claim 1, wherein estimating the size of the image slice includes estimating the size of each of the other groups of image blocks. 15
[0003]
The method of claim 2, wherein the size of each of the other groups of picture blocks is estimated based on the size of the first group of picture blocks.
[0004]
The method of claim 2, wherein the size of each of the other groups of picture blocks is estimated by identifying, for each other group of picture blocks, a corresponding group of picture blocks in a frame previous video; and estimating the size of each other group of picture blocks based on the size of its corresponding group of picture blocks in the previous frame and the quantization factor that was used to code the corresponding group of blocks image.
[0005]
The method of claim 4, wherein the size estimate of each of the other groups of image blocks is based on the equation: rOld_Group_QP (g) -NewQP Predicted_Group_Size [g] = Old_Group_Size [g] x 2 '6 3024314 B13071EN 21 where Predicted Group Size [g] is the size estimate of the other group g, OldGroup_Size [g] is the size of the corresponding group of picture blocks in the previous frame, Old_Group_QP [g] is the quantization factor that was used to encode the corresponding group of image blocks, and NewQP is the first quantization factor.
[0006]
The method of claim 4 or 5, wherein, for each other group of picture blocks, the corresponding group of picture blocks is the group of the previous frame having the same position in the picture as the picture frame. other group e.
[0007]
The method of claim 4 or 5, wherein for each other group of picture blocks, the corresponding group of picture blocks in the previous frame is identified based on one or more motion vectors between blocks. 15 of the previous video frame and picture frames of the video frame.
[0008]
The method of any one of claims 1 to 7, wherein said one or more first image blocks are stored in a buffer (106), and wherein the method further comprises a prediction of the occurrence of an overflow of the buffer based on the predicted size of the other groups of picture blocks in a sliding window to be encoded.
[0009]
The method of any one of claims 1 to 8, wherein determining the second quantization factor comprises comparing the estimated size of the image slice with an image slice size limit, and a reducing or increasing the first quantization factor based on the comparison.
[0010]
The method of any one of claims 1 to 9, further comprising: detecting by the processing device whether a scene change has occurred or not between the video frame and a previous video frame by comparing the size from the first group of picture blocks to at least one determined threshold on the rack of the size of a group of picture blocks in a previous frame corresponding to the first group; if no scene changes are detected, estimating the size of each other group of picture blocks based on the size of a corresponding group of picture blocks in the previous video frame; and if a scene change is detected, estimating the size of each other group of picture blocks based on the size of one or more coded groups of picture blocks of the current video frame.
[0011]
The method of any one of claims 1 to 10, wherein each group of picture blocks comprises one or more picture blocks.
[0012]
The method of any one of claims 1 to 11, wherein each frame of video comprises N groups of picture blocks, and wherein the frame of video comprises N groups of picture blocks.
[0013]
A processing device adapted to: estimate, on the basis of a first quantization factor (QP) used to encode one or more first groups of image blocks of a video frame, the size of a slice picture frame comprising a plurality of other groups of picture blocks to be encoded; and determining, based on the estimated size of the slice of image, a second quantization factor (QP) to be applied to one or more of the other groups.
[0014]
A video transmission circuit comprising: a video encoder (102) adapted to compress a video signal based on a quantization parameter; The processing device of claim 13 for providing the quantization parameter; and an output buffer (106) for storing the compressed video signal.
[0015]
A video transmission system comprising: the video transmission circuit of claim 14, wherein the video signal is provided by a capture device (104); a receiver circuit coupled to the video transmission circuit 5 by a transmission interface (107), the receiver circuit comprising: an input buffer (108) for receiving the compressed video signal; a decoder (110) for decoding the compressed video signal to generate an uncompressed video signal; and a display (112) for displaying the uncompressed video signal.
类似技术:
公开号 | 公开日 | 专利标题
FR3024314A1|2016-01-29|
EP0675652B1|2009-05-13|Method and circuit for estimating motion between images of two interlaced fields, and digital signal coding devices comprising such a circuit
US8625675B2|2014-01-07|Block error compensating apparatus of image frame and method thereof
JP5588438B2|2014-09-10|Image encoding method and image encoding apparatus
EP2225888B1|2011-08-10|Macroblock-based dual-pass coding method
EP0670663A1|1995-09-06|Method of and apparatus for coding digital signals representing a sequence of images
EP2192785B1|2014-12-31|Image processing device and method for computing a quantization factor
KR20070086710A|2007-08-27|Rate control techniques for video encoding using parametric equations
EP2279621B1|2013-02-13|Method of coding, decoding, coder and decoder
CN1605209A|2005-04-06|Video encoding method
US10616498B2|2020-04-07|High dynamic range video capture control for video transmission
US20130251279A1|2013-09-26|Image encoding method using adaptive preprocessing scheme
US20120002723A1|2012-01-05|Stereo video coding apparatus and stereo video coding method
EP3139608A1|2017-03-08|Method for compressing a video data stream
FR3024313A1|2016-01-29|
EP1603341B1|2007-07-11|Method and device for image interpolation systems usingmotion estimation and compensation
EP1591962A2|2005-11-02|Method and device for generating candidate vectors for image interpolation systems using motion estimation and compensation
EP2410749A1|2012-01-25|Method for adaptive encoding of a digital video stream, particularly for broadcasting over xDSL line
FR3012004A1|2015-04-17|IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
FR2914124A1|2008-09-26|METHOD AND DEVICE FOR CONTROLLING THE RATE OF ENCODING VIDEO PICTURE SEQUENCES TO A TARGET RATE
EP3843409A1|2021-06-30|Allocation method for low-speed link
WO2007145137A1|2007-12-21|Image coding device and image coding method
KR101944231B1|2019-01-30|An encoding apparatus including a video switching apparatus and an encoding method including a video switching detecting method
EP3547684A1|2019-10-02|Method, device and system for method of encoding a sequence of frames in a video stream
EP1854299B1|2010-01-27|Method, device and system for processing successive block-coded images
同族专利:
公开号 | 公开日
EP2985997B1|2020-11-25|
FR3024314B1|2017-12-08|
US20160029020A1|2016-01-28|
EP2985997A2|2016-02-17|
EP2985997A3|2016-05-11|
US9706203B2|2017-07-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US5949490A|1997-07-08|1999-09-07|Tektronix, Inc.|Distributing video buffer rate control over a parallel compression architecture|
WO2009157827A1|2008-06-25|2009-12-30|Telefonaktiebolaget L M Ericsson |Row evaluation rate control|
US6151442A|1996-07-08|2000-11-21|Victor Company Of Japan, Ltd.|Signal compressing apparatus|
DE19946267C2|1999-09-27|2002-09-26|Harman Becker Automotive Sys|Digital transcoding system|
GB2365240B|2000-07-19|2002-09-25|Motorola Inc|Apparatus and method for image transmission|
US7042941B1|2001-07-17|2006-05-09|Vixs, Inc.|Method and apparatus for controlling amount of quantization processing in an encoder|
US7046173B2|2001-12-26|2006-05-16|Eads Telecom|Method and device for converting a quantized digital value|
JP4113044B2|2003-05-23|2008-07-02|松下電器産業株式会社|Image encoding device|
US20060233237A1|2005-04-15|2006-10-19|Apple Computer, Inc.|Single pass constrained constant bit-rate encoding|
CN101637026B|2007-09-12|2012-03-28|索尼株式会社|Image processing apparatus and method|
US8200034B2|2008-04-14|2012-06-12|New Jersey Institute Of Technology|Detecting double JPEG compression in images|
JP6234659B2|2012-04-27|2017-11-22|富士通株式会社|Video decoding device|
FR3024314B1|2014-07-25|2017-12-08|Allegro Dvt|LOW ENCODED VIDEO ENCODER|FR3024313B1|2014-07-25|2017-12-08|Allegro Dvt|VARIABLE RATE VIDEO ENCODER|
FR3024314B1|2014-07-25|2017-12-08|Allegro Dvt|LOW ENCODED VIDEO ENCODER|
US10171807B2|2015-01-29|2019-01-01|Arris Enterprises Llc|Picture-level QP rate control for HEVC encoding|
US9800875B2|2015-04-10|2017-10-24|Red.Com, Llc|Video camera with rate control video compression|
CN107027027B|2016-01-31|2021-02-12|西安电子科技大学|Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding system|
AU2016203291A1|2016-05-20|2017-12-07|Canon Kabushiki Kaisha|Method, apparatus and system for encoding and decoding video data|
EP3513563A1|2016-10-18|2019-07-24|Zhejiang Dahua Technology Co., Ltd|Methods and systems for video processing|
CN106572352B|2016-10-21|2019-09-17|浙江大华技术股份有限公司|A kind of key frame sign control method and device|
CN108235346B|2016-12-22|2021-03-16|上海诺基亚贝尔股份有限公司|Method and device for monitoring inactive UE in LTE system|
KR102342051B1|2017-08-08|2021-12-22|삼성전자주식회사|Image processing apparatus, image processing method and image display system|
CN107864379B|2017-09-28|2021-07-02|珠海亿智电子科技有限公司|Compression method applied to video coding and decoding|
FR3078808B1|2018-03-08|2021-07-16|Commissariat Energie Atomique|INTER-FRAME AND INTRA-FRAME IMAGE PROCESSING PROCESS|
US20200137134A1|2018-10-31|2020-04-30|Ati Technologies Ulc|Multi-session low latency encoding|
CN112004083A|2019-05-27|2020-11-27|北京君正集成电路股份有限公司|Method and system for optimizing code rate control by utilizing inter-frame prediction characteristics|
CN110278495B|2019-06-25|2020-02-07|重庆紫光华山智安科技有限公司|Video transmission network control method and device based on MPQM|
法律状态:
2015-07-17| PLFP| Fee payment|Year of fee payment: 2 |
2016-01-29| PLSC| Publication of the preliminary search report|Effective date: 20160129 |
2016-07-27| PLFP| Fee payment|Year of fee payment: 3 |
2017-07-18| PLFP| Fee payment|Year of fee payment: 4 |
2018-07-04| PLFP| Fee payment|Year of fee payment: 5 |
2019-07-23| PLFP| Fee payment|Year of fee payment: 6 |
2020-07-28| PLFP| Fee payment|Year of fee payment: 7 |
2021-07-29| PLFP| Fee payment|Year of fee payment: 8 |
优先权:
申请号 | 申请日 | 专利标题
FR1457231A|FR3024314B1|2014-07-25|2014-07-25|LOW ENCODED VIDEO ENCODER|FR1457231A| FR3024314B1|2014-07-25|2014-07-25|LOW ENCODED VIDEO ENCODER|
EP15177493.2A| EP2985997B1|2014-07-25|2015-07-20|Low latency video encoder|
US14/805,120| US9706203B2|2014-07-25|2015-07-21|Low latency video encoder|
[返回顶部]